Skip to content

feat: serve an MCP server card at /.well-known/mcp/server-card.json - #169

Merged
ChiragAgg5k merged 2 commits into
mainfrom
feat/server-card
Nov 11, 2026
Merged

ChiragAgg5k merged 2 commits into
mainfrom
feat/server-card

Conversation

@ChiragAgg5k

@ChiragAgg5k ChiragAgg5k commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

What

Ora's agent-readiness scan flags registry-branding: it looks for a server card at <server URL>/server-card to read the title, icon and description, and mcp.appwrite.io serves none (/server-card and /.well-known/mcp/server-card.json both 404).

This serves a SEP-1649 server card at both paths, without auth and with CORS *:

  • name: io.github.appwrite/mcp (the MCP Registry name, now SERVER_REGISTRY_NAME)
  • title, version, websiteUrl, repository
  • description: the 98-character registry summary (the card schema caps it at 100; serverInfo.description is 192)
  • icons: the existing /favicon.svg, built from MCP_PUBLIC_URL
  • remotes: the canonical Streamable-HTTP resource (<MCP_PUBLIC_URL>/)

Checks

  • ruff, black --check, pyright: clean
  • Unit: 301 pass
  • E2E: new ToolsFlow.test_server_card_describes_the_server_without_auth hits both paths on the real app and asserts status, CORS, name, title, description length, icon and remote URL; test_tools.py passes (10 tests)

Not in this PR

Ora also reports mcp-oauth-metadata / mcp-pkce-s256 / mcp-auth-mechanism as missing. The metadata exists (S256 PKCE and CIMD are advertised), but the protected-resource metadata names the issuer https://fra.cloud.appwrite.io/v1/oauth2/console, and RFC 8414 §3.1 path insertion (https://fra.cloud.appwrite.io/.well-known/oauth-authorization-server/v1/oauth2/console) returns 404. That route belongs on the Appwrite server, not here.

Related: appwrite-labs/cloud#6667

Agent-readiness scanners and registries look for a SEP-1649 card at the server origin (Ora probes <server URL>/server-card) to show a branded listing before connecting. mcp.appwrite.io served none, so it was reported with no icon. Serve the card, with the registry name, a schema-length description, the existing favicon and the remote URL, at both paths.
@appwrite

appwrite Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

🟢 Tier S · Ready to merge

Adds public MCP server-card endpoints at /.well-known/mcp/server-card.json and /server-card, using shared registry branding metadata and CORS headers. The card advertises the Streamable HTTP remote and supported protocol versions, with end-to-end coverage for both routes.

Latest changes: The newest commits update the card to SEP-2127 and add the supported protocol versions advertised by the MCP types package, with an assertion for the 2025-11-25 version.

Verdict New comments Fixed Still open
✅ Approved 0 0 0
📂 Walkthrough · 3
File Change
src/mcp_server_appwrite/constants.py Adds shared server-card schema, registry name, summary, and website metadata.
src/mcp_server_appwrite/http_app.py Serves the public card on both routes and advertises supported protocol versions for its Streamable HTTP remote.
tests/e2e/test_tools.py Checks both public routes and verifies the card includes the expected supported protocol version.

Reviewed the commits since cfba6ed · Details · Comment @appwrite review to re-run, or mention @appwrite with a question.

appwrite[bot]
appwrite Bot previously requested changes Nov 11, 2026

@appwrite appwrite Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Tier B · 1 blocking finding to address. Summary

Comment thread src/mcp_server_appwrite/http_app.py Resolved

@appwrite appwrite Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Tier S · Looks good to merge. Summary

@appwrite
appwrite Bot dismissed their stale review November 11, 2026 14:32

The findings that requested changes are resolved. See the summary comment for what is still open.

@ChiragAgg5k
ChiragAgg5k merged commit 6d7ab1d into main Nov 11, 2026
6 checks passed
@ChiragAgg5k
ChiragAgg5k deleted the feat/server-card branch November 11, 2026 14:37
@ChiragAgg5k ChiragAgg5k self-assigned this Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant